<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>叶琪</title>
</head>
<body>
    <script>
        //赋值运算符
        var a=1;
        // 算术运算符
        var a=1;
        var b=a+11;//加法
        console.log("b="+b);//字符串

        var a="hello";
        var b=a+11;
        console.log("b="+b);//字符串

        var c=12,d=5;
        console.log(c+"/"+d+"="+(c/d));//java时候是整除
        console.log(c+"%"+d+"="+(c%d));//只能对整数求余

        //2、自增自减运算符
        var a1=10;
        var a2=a1++;//单目运算符，操作数只能是变量，不能是常量
        // ++在后面 先使用a，再把a+1
        //++a;先使用a+1，再使用a
        console.log("a1="+a1+",a2="+a2);

        var m=10;
        console.log(m++);//10 由于没有赋值所以是10，实质上是11
        console.log(++m);//12
        console.log(m--);//12 实质上是11
        console.log(--m);//10

        //关系运算符
        var m1=12,m2=10;
        console.log(m1<m2);

        //逻辑运算符
        var yuwen=85,shuxue=99;
        var b1=!((yuwen>90)||(shuxue>60));
        console.log("b1="+b1);

        // 运算符的优先级
        // 算术运算 大于关系运算（大小于大于相等） 大于逻辑 
         var c1=12,c2=11,c3=10,c4=9;
         c1>c2==c3<c4;

         //位运算符
         var x=12,y=20;
         console.log("位与"+(12&10));//8 12转换为：00001100 10转换为00001010 全1的时候为1，否则为0
         // & 00001000 
         console.log("位或"+(12|10));//有一个为1则为1 00001110
         console.log("位异或"+(12^10));//不同的为1，相同为0 00000110
                //左移n位就是2的n次方
         console.log(12<<3);//2进制左移三位 00001100
                                         //01100000
         console.log(12>>2);

    //其他运算符
    //条件运算符(判断第一个，如果为真则为第二个，不然就是第二个)
     var p=12,q=10,t;
     t=(p>q)?p:q;
     console.log("t="+t);

    //逗号运算符
    //不管逗号表达式有多少，最后一个的表达式就是它的值
    var k=10;
    var j=(k++,++k,k++,10);
    console.log("k="+k+",j="+j);
    // 复合赋值运算符
    a+=2;
    a=a+2;
    a&=2;
    a=a&2;
    </script>
</body>
</html>